﻿using System;
using System.Data;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Threading;
using System.Globalization;
using System.Resources;
using EHTWebsite.Code;
using System.Text;
using System.IO;
using System.Net;
using System.Web.Security;
using EHTWebsiteProject.Code.BLL;

namespace EHTWebsiteProject.Account
{
    public partial class EHTLogin : System.Web.UI.Page
    {
        private String message = "";

        public Boolean IsVN = true;
        private String languageCode = "vi-VN";
        private ResourceManager rm = new ResourceManager("Resources.SiteMap", System.Reflection.Assembly.Load("App_GlobalResources"));

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                try
                {
                    if (Request.QueryString["NgonNgu"] != null)
                        languageCode = Request.QueryString["NgonNgu"].ToString();
                    else
                        //Lấy ngôn ngữ mặc định từ database
                        languageCode = NgonNguProvider.GetNgonNgu(HangSo.NgonNgu1, true).Tables[0].Rows[0]["KyHieu"].ToString().Trim();
                    ddlNgonngu.SelectedValue = languageCode;
                    if (languageCode == "en-us")
                    {
                        IsVN = false;
                    }
                }
                catch (Exception ex)
                {
                }
                Thread.CurrentThread.CurrentCulture = new CultureInfo(languageCode);
                LoadLanguage(Thread.CurrentThread.CurrentCulture);
                this.txtUser.Focus();
                Session[HangSo.LANGUAGE_CODE] = languageCode;
                                
            }
           
        }
        /// <summary>
        /// Hàm thông báo lỗi xảy ra khi đăng nhập
        /// </summary>
        /// <param name="messa"></param>
        /// <returns></returns>
        public String ErorrLogin(String messa)
        {
            StringBuilder sb = new StringBuilder();
                                                    
            sb.Append("<div class='Erorr'>");
            sb.Append("<table>");
            sb.Append("<tr>");
            sb.Append("<td>");
            sb.Append("<img alt='' src='../images/EHTgiaodien/notice-alert.png' />");
            sb.Append("</td>");
            sb.Append("<td>");
            sb.Append(messa);
            sb.Append("</td>");
            sb.Append("</tr>");
            sb.Append("</table>");
            sb.Append("</div>");
            return sb.ToString();
        }
        
       

        /// <summary>
        /// Ham load ngon ngu
        /// </summary>
        /// <param name="ci"></param>
        public void LoadLanguage(CultureInfo ci)
        {            
            btnLogin.Text = rm.GetString("btnLogin", ci);
            lbHome.Text = rm.GetString("lbHome", ci);
            lbLogin.Text = rm.GetString("lbLogin", ci);
            lbNgonNgu.Text = rm.GetString("lbNgonNgu", ci);
            lbPass.Text = rm.GetString("lbPass", ci);
            lbThongbao.Text = rm.GetString("lbThongbao", ci);
            lbUser.Text = rm.GetString("lbUser", ci);
        }

        protected void ddlNgonngu_SelectedIndexChanged(object sender, EventArgs e)
        {
            Response.Redirect("EHTLogin.aspx?NgonNgu="+ddlNgonngu.SelectedValue.ToString());
        }

        protected void btnLogin_Click(object sender, EventArgs e)
        {
            Page.Validate();
            if (Page.IsValid)
            {
                //lấy tài khoản từ bange menbershipUser
                MembershipUser theUser = Membership.GetUser(this.txtUser.Text);

                // kiểm tra sự tồn tại của user
                if (theUser == null)
                {
                    if(IsVN == true)
                        ltrErorr.Text = ErorrLogin("Tài khoản chưa tồn tại!");
                    else
                        ltrErorr.Text = ErorrLogin("Account is not exist!");
                }
                else
                {
                    //tài khoản bị khóa
                    if (theUser.IsLockedOut == true || theUser.IsApproved == false)
                    {                        
                        if(IsVN == true)
                            ltrErorr.Text = ErorrLogin("Tài khoản đã bị khóa");
                        else
                            ltrErorr.Text = ErorrLogin("Account is locked");
                        return;
                    }
                    //tài khoản hợp lệ
                    if (Membership.ValidateUser(this.txtUser.Text, this.txtPass.Text))
                    {
                       
                       
                            if (Request.QueryString["ReturnUrl"] != null)
                            {
                                FormsAuthentication.RedirectFromLoginPage(this.txtUser.Text, false);
                            }
                            else
                            {
                                Session["UserName"] = txtUser.Text.Trim();
                                Response.Redirect("../Administrator/EHTSystem.aspx");
                            }
                      
                       
                    }
                    else
                    {
                        ltrErorr.Text = ErorrLogin("Mật khẩu không đúng");
                    }
                }
            }
        }
    }
}